package reflect;

import java.util.Scanner;

/**
 * 实例化对象
 */
public class ReflectDemo2 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Person p = new Person();
        System.out.println(p);
        //使用反射机制实例化对象
        //1获取要实例化对象所对应类的类对象
//        Class c = Class.forName("reflect.Person");
        /*
            测试:
            java.util.ArrayList     java.util.HashMap
            reflect.Person          reflect.Student
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个类的名字:");
        String className = scanner.nextLine();
        Class c = Class.forName(className);
        /*
            2
            Class提供了一个方法:
            Object newInstance()
            它会使用其表示的类的无参构造器实例化该对象，并将实例化后的对象向上造型为
            Object并将其返回
            注意:
            该类要有无参构造器，且可以被访问到，否则会抛出异常
            java.io.FileInputStream
         */
        Object obj = c.newInstance();//new Person();
        System.out.println(obj);

    }
}






